package org.magicsoft.office.excel.model;

import org.magicsoft.office.db.SQLType;

public class Reference {

	// 所属的excel列。
	private Column column = null;

	// refDisplayColumn在excel中的位置，
	// 仅在自关联情况下使用，即refDisplayColumn要求在excel中也必须存在，以此判断上下级关系。
	private Column mappingColumn = null;

	// 引用的业务表的名字。
	private String refTableName = null;

	// 引用的业务表中用来反找ID的名称或编码之类的显示字段。
	private String refDisplayColumn = null;

	// 引用的业务表的主键信息。
	private PrimaryKey refPrimaryKey = null;

	// 在临时表中存放ID的字段名。
	private String tempTableColumn = null;

	// 由于引用列除了原本的显示字段外，还需要额外加一列ID字段，此参数即指定了ID字段的参数索引。
	private int parameterIndex = -1;

	public Reference(String refTableName, String refDisplayColumn, String primaryKeyColumn, SQLType sqlType) {
		this.refTableName = refTableName;
		this.refDisplayColumn = refDisplayColumn;
		this.refPrimaryKey = new PrimaryKey(primaryKeyColumn, sqlType, null);
	}

	public Column getColumn() {
		return column;
	}

	public void setColumn(Column column) {
		this.column = column;
	}

	public String getRefTableName() {
		return refTableName;
	}

	public void setRefTableName(String refTableName) {
		this.refTableName = refTableName;
	}

	public String getRefDisplayColumn() {
		return refDisplayColumn;
	}

	public void setRefDisplayColumn(String refDisplayColumn) {
		this.refDisplayColumn = refDisplayColumn;
	}

	public PrimaryKey getRefPrimaryKey() {
		return refPrimaryKey;
	}

	public void setRefPrimaryKey(PrimaryKey refPrimaryKey) {
		this.refPrimaryKey = refPrimaryKey;
	}

	public String getTempTableColumn() {
		return tempTableColumn;
	}

	public void setTempTableColumn(String tempTableColumn) {
		this.tempTableColumn = tempTableColumn;
	}

	public Column getMappingColumn() {
		return mappingColumn;
	}

	public void setMappingColumn(Column mappingColumn) {
		this.mappingColumn = mappingColumn;
	}

	public int getParameterIndex() {
		return parameterIndex;
	}

	public void setParameterIndex(int parameterIndex) {
		this.parameterIndex = parameterIndex;
	}

}
